The present invention relates generally computer networking methods and systems, and more particularly, to matchmaking methods and systems for use in online multiplayer video games.
Recent advances in computer technology and computer networking have resulted in a proliferation of network-based applications, including online video games, voice over IP (VoIP) telephony, online file and data sharing, online media streaming, and many others. In network-based applications, network connection quality may be an important factor in determining the overall quality of the user's experience. For example, many modern video games provide for online multiplayer gameplay in which multiple players can participate in a game over a network. In some architectures, the users communicate with dedicated, centralized servers that host and coordinate the games. In other architectures, users may host games and act as both server and one of the clients. Regardless of what architecture is adopted, it is preferable to have adequate network connection quality between users and hosts.
The network connection quality between a user and a host can be approximated using one or more network characteristics including, for example, the round trip time (RTT) of sending and receiving packets, one-way measurements of latency, bandwidth and/or throughput measurements, and other quality of service metrics. If the network connection quality between a user and host is poor, the network latency may manifest itself as perceivable delays in gameplay, or lag. Network connection quality depends on a variety of factors, including network bandwidth, network congestion, the number of communication hops between the user and the host, and the capabilities of the user and host computers.
Reliably determining or predicting the network connection quality between the user and available host computers may be difficult. A brute force technique is to test the network connection quality of every available host, but this approach may be impractical as there may be thousands (or millions) of available hosts, and the time required to test the connection quality for every host could be prohibitive.
Another known technique relies on the approximated geographic distance between the user and the available hosts as a predictor for determining network connection quality. In practice, however, using geographical distance as a proxy for network connection quality may be unreliable. For example, conventional geo-location services may not accurately report a user's geo-location. In most instances, a computer's IP address can only be used to look up the physical address of the registrant of the IP address (e.g., an Internet Service Provider's physical address as opposed to the user's physical address). But the registrant of the IP address often has a physical address that is different and distant from the user's physical address. In other instances, a computer's geo-location is approximated using information retrieved from the computer itself, such as its computer's time zone and language. But the information retrieved from the computer is generally determined by the user and is thus subject to manipulation.
Also, even assuming the user and host computers' geo-locations could be reliably ascertained, the geographic distance between the two computers may still fail to provide a strong correlation to the internet distance (or number of network hops or transit path length) between the user and the host. This is because the geographic distance between two computers may fail to take into account the complex topology of the internet and its routing architecture.